home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Libris Britannia 4
/
science library(b).zip
/
science library(b)
/
PROGRAMM
/
DB_CLIPP
/
1159.ZIP
/
OSSPREP.PRG
< prev
next >
Wrap
Text File
|
1986-12-04
|
17KB
|
857 lines
SET SAFETY OFF
N4='Z'
LOCATI='LOCATI'
INSTTYPE='INSTTYPE'
DUEWITHIN='DUEWITHIN'
DO WHILE N4#'STOP'
ALL=0
NOTUSED=0
INCAL=0
INREP=0
MULTTV=0
MULTSN=0
SERPHRASE=0
TVAPHRASE=0
CAL=0
STORAGE=0
OTHERCAL=0
NUMCOND=0
INACTIVE=1
COND1='OSS'
COND2=COND1
COND3=COND1
CALDU=0
CALDT=CALDU
CALINT=CALDU
REMK=CALDU
UPDT=CALDU
DO WHILE (ASC(N4)<65.OR.ASC(N4)>82).AND.ASC(N4)>0
CLEAR
@ 0,15 SAY 'Data base in use: '
?? OSS
@ 1,0 SAY 'PLEASE NOTE: Record searches which include the choice of item A ;
below will'
?'ignor records which are EXCLUSIVELY in category "'
?? CATEGORY3
??'."'
?'What conditions do you wish to place on this record search ?'
IF COND1#DUEWITHIN
?'A) Search the "'
?? DUEDATE
??'" field for dates <= a certain date.'
ELSE
?'A)* Search the "'
?? DUEDATE
??'" field for dates <= a certain date.'
ENDIF
IF COND3#INSTTYPE
?'B) Search the "'
?? INSTNAME
??'" field for a key phrase.'
ELSE
?'B)* Search the "'
?? INSTNAME
??'" field for a key phrase.'
ENDIF
IF COND2#LOCATI
?'C) Search the "'
?? LOCATNAME
??'" field for a key phrase.'
ELSE
?'C)* Search the "'
?? LOCATNAME
??'" field for a key phrase.'
ENDIF
IF INACTIVE=0
?'D)* Restrict the search to those records in category "'
?? CATEGORY1
??'."'
ELSE
?'D) Restrict the search to those records in category "'
?? CATEGORY1
??'."'
ENDIF
IF INACTIVE=10
?'E)* Restrict the search to those records in category "'
?? CATEGORY2
??'."'
ELSE
?'E) Restrict the search to those records in category "'
?? CATEGORY2
??'."'
ENDIF
?' Single Selection Items Below'
?'F) Search for ALL records in this data base.'
?'G) Search the "'
?? DUEDATE
??'" field from date to date.'
?'H) Search the "'
?? CALIBDATE
??'" field from date to date.'
?'I) Search the "'
?? CALINTERVL
??'" field from interval to interval.'
?'J) Search the "'
?? REMARKNM
??'" field for a key phrase.'
?'K) Search for all records in subcategory "'
?? SUBCAT1
??'."'
?'L) Search for all records in subcategory "'
?? SUBCAT2
??'."'
?'M) Search for all records in subcategory "'
?? SUBCAT3
??'."'
?'N) Search for all records in subcategories "'
?? SUBCAT2
??'" or'
?' "'
?? SUBCAT3
??'."'
?'O) Search the "'
?? SERIALNUM
??'" field for a key phrase.'
?'P) Search the "'
?? TVANUMBER
??'" field for a key phrase.'
?'Q) Search the "Last Update" (last process date) field from date to date.'
?'R) Search for all records in category "'
?? CATEGORY3
??'."'
WAIT ' Press "RETURN" to return to the previous menu.' TO N4
??' WORKING . . .'
N4=UPPER(N4)
DO CASE
CASE ASC(N4)=0
RETURN
CASE N4='A'
IF INACTIVE=10.AND.NOTUSED=1
NOTUSED=0
INACTIVE=1
ENDIF
N6=N4
DO WHILE N6#'Y'
@ 14,0 CLEAR
?
?'What date do you choose ?'
?
ACCEPT 'Date format: ##/##/#### DATE: ' TO CHOSDATE
CHOSDATE=LTRIM(TRIM(CHOSDATE))
IF ASC(CHOSDATE)=0
RETURN
ENDIF
COMPDATE=CTOD(CHOSDATE)
IF LEN(CHOSDATE)<9
IF YEAR(COMPDATE)+100-YEAR(DATE())<10
MOCALDT=MONTH(COMPDATE)
DYCALDT=DAY(COMPDATE)
YRCALDT=INT(YEAR(COMPDATE)+100+.5)
IF MOCALDT<10
M=1
ELSE
M=2
ENDIF
IF DYCALDT<10
D=1
ELSE
D=2
ENDIF
COMPDATE=CTOD(STR(MOCALDT,M,0)+'/'+STR(DYCALDT,D,0)+'/'+STR(YRCALDT,4,0))
ENDIF
ENDIF
??'Is '
?? CDOW(COMPDATE)
??', '
?? CMONTH(COMPDATE)
?? DAY(COMPDATE)
??', '
?? YEAR(COMPDATE)
??' the date which you want ? (Y/N)'
WAIT ' ' TO N6
N6=UPPER(N6)
IF ASC(N6)=0
RETURN
ENDIF
ENDDO
BYDATE=INT(YEAR(COMPDATE)*365.24+MONTH(COMPDATE)*30.44+DAY(COMPDATE))
?
?
N6='Z'
DO WHILE N6#'Y'.AND.N6#'N'
COND1='DUEWITHIN'
@ 19,0
WAIT 'Do you wish another condition ? (Y/N)' TO N6
DO CASE
CASE UPPER(N6)='Y'
??' WORKING . . .'
OTHERWISE
@ 14,0 CLEAR
@ 15,35 SAY 'WORKING . . .'
ENDCASE
N6=UPPER(N6)
IF ASC(N6)=0
RETURN
ENDIF
ENDDO
IF N6='Y'
N4='Z'
LOOP
ENDIF
CASE N4='B'
@ 14,0 CLEAR
?
?' What is the key phrase you wish to use'
?
?' for the "'
?? INSTNAME
??'" field ?'
?
ACCEPT ' ' TO INST
IF ASC(INST)=0
RETURN
ENDIF
INST=UPPER(LTRIM(TRIM(INST)))
N6='Z'
DO WHILE N6#'Y'.AND.N6#'N'
COND3='INSTTYPE'
IF COND1='ONLY'
COND1='1'
ENDIF
?
?
@ ROW()-1,0
WAIT 'Do you wish another condition ? (Y/N)' TO N6
DO CASE
CASE UPPER(N6)='Y'
??' WORKING . . .'
CASE ASC(N6)=0
RETURN
OTHERWISE
@ 14,0 CLEAR
@ 15,35 SAY 'WORKING . . .'
ENDCASE
N6=UPPER(N6)
ENDDO
IF N6='Y'
N4='Z'
LOOP
ENDIF
CASE N4='C'
@ 14,0 CLEAR
?
?' What is the key phrase you wish to use'
?
?' for the "'
?? LOCATNAME
??'" field ?'
?
ACCEPT ' ' TO LOC
IF ASC(LOC)=0
RETURN
ENDIF
LOC=UPPER(LTRIM(TRIM(LOC)))
N6='Z'
DO WHILE N6#'Y'.AND.N6#'N'
COND2='LOCATI'
IF COND1='ONLY'
COND1='1'
ENDIF
?
?
@ ROW()-1,0
WAIT 'Do you wish another condition ? (Y/N)' TO N6
DO CASE
CASE UPPER(N6)='Y'
??' WORKING . . .'
CASE ASC(N6)=0
RETURN
OTHERWISE
@ 14,0 CLEAR
@ 16,35 SAY 'WORKING . . .'
ENDCASE
N6=UPPER(N6)
ENDDO
IF N6='Y'
N4='Z'
LOOP
ENDIF
CASE N4='D'
@ 14,0 CLEAR
INACTIVE=0
NOTUSED=0
IF COND1#'DUEWITHIN'.AND.COND2#'LOCATI'.AND.COND3#'INSTTYPE'
COND1='ONLY'
ENDIF
N6='Z'
DO WHILE N6#'Y'.AND.N6#'N'
?
?' Restrict the search to those records in '
?
?' category "'
?? CATEGORY1
??'".'
?
?
WAIT 'Do you wish another condition ? (Y/N)' TO N6
N6=UPPER(N6)
DO CASE
CASE N6='Y'
??' WORKING . . .'
N4='Z'
EXIT
CASE ASC(N6)=0
RETURN
OTHERWISE
@ 14,0 CLEAR
@ 15,35 SAY 'WORKING . . .'
ENDCASE
ENDDO
CASE N4='E'
@ 14,0 CLEAR
INACTIVE=10
NOTUSED=1
COND1='OSS'
IF COND2#'LOCATI'.AND.COND3#'INSTTYPE'
COND1='ONLY'
ENDIF
N6='Z'
DO WHILE N6#'Y'.AND.N6#'N'
?
?' Restrict the search to those records in '
?
?' category "'
?? CATEGORY2
??'".'
?
WAIT 'Do you wish another condition ? (Y/N)' TO N6
N6=UPPER(N6)
DO CASE
CASE N6='Y'
??' WORKING . . .'
N4='Z'
EXIT
CASE ASC(N6)=0
RETURN
OTHERWISE
@ 14,0 CLEAR
@ 15,35 SAY 'WORKING . . .'
ENDCASE
ENDDO
CASE N4='F'
ALL=1
NOTUSED=10
INACTIVE=10
COND1='1'
COND2='2'
COND3='3'
N6='Z'
@ 14,0 CLEAR
DO WHILE N6#'Y'.AND.N6#'N'
?
?
@ ROW()-1,0
WAIT 'Are you sure you wish to search for ALL records ? (Y/N)' TO N6
DO CASE
CASE UPPER(N6)='N'
??' WORKING . . .'
INACTIVE=1
ALL=0
N4='Z'
LOOP
CASE ASC(N6)=0
RETURN
OTHERWISE
@ 14,0 CLEAR
@ 15,35 SAY 'WORKING . . .'
ENDCASE
N6=UPPER(N6)
ENDDO
CASE N4='G'
NOTUSED=10
INACTIVE=10
COND1='1'
COND2='2'
COND3='3'
CALDU=1
COMPDATE1=CTOD('12/12/86')
COMPDATE2=CTOD('12/12/84')
DO WHILE COMPDATE1>COMPDATE2
N6=N4
DO WHILE N6#'Y'
@ 14,0 CLEAR
?
?'What beginning date do you choose ?'
?
ACCEPT 'Date format: ##/##/#### DATE: ' TO CHOSDATE
CHOSDATE=LTRIM(TRIM(CHOSDATE))
IF ASC(CHOSDATE)=0
RETURN
ENDIF
COMPDATE1=CTOD(CHOSDATE)
IF LEN(CHOSDATE)<9
IF YEAR(COMPDATE1)+100-YEAR(DATE())<10
MOCALDT=MONTH(COMPDATE1)
DYCALDT=DAY(COMPDATE1)
YRCALDT=INT(YEAR(COMPDATE1)+100+.5)
IF MOCALDT<10
M=1
ELSE
M=2
ENDIF
IF DYCALDT<10
D=1
ELSE
D=2
ENDIF
COMPDATE1=CTOD(STR(MOCALDT,M,0)+'/'+STR(DYCALDT,D,0)+'/'+STR(YRCALDT,4,0))
ENDIF
ENDIF
??'Is '
?? CDOW(COMPDATE1)
??', '
?? CMONTH(COMPDATE1)
?? DAY(COMPDATE1)
??', '
?? YEAR(COMPDATE1)
??' the date which you want ? (Y/N)'
WAIT ' ' TO N6
N6=UPPER(N6)
IF ASC(N6)=0
RETURN
ENDIF
ENDDO
?
?
N6=N4
DO WHILE N6#'Y'
@ 14,0 CLEAR
?
?'What ending date do you choose ?'
?
ACCEPT 'Date format: ##/##/#### DATE: ' TO CHOSDATE
CHOSDATE=LTRIM(TRIM(CHOSDATE))
IF ASC(CHOSDATE)=0
RETURN
ENDIF
COMPDATE2=CTOD(CHOSDATE)
IF LEN(CHOSDATE)<9
IF YEAR(COMPDATE2)+100-YEAR(DATE())<10
MOCALDT=MONTH(COMPDATE2)
DYCALDT=DAY(COMPDATE2)
YRCALDT=INT(YEAR(COMPDATE2)+100+.5)
IF MOCALDT<10
M=1
ELSE
M=2
ENDIF
IF DYCALDT<10
D=1
ELSE
D=2
ENDIF
COMPDATE2=CTOD(STR(MOCALDT,M,0)+'/'+STR(DYCALDT,D,0)+'/'+STR(YRCALDT,4,0))
ENDIF
ENDIF
??'Is '
?? CDOW(COMPDATE2)
??', '
?? CMONTH(COMPDATE2)
?? DAY(COMPDATE2)
??', '
?? YEAR(COMPDATE2)
??' the date which you want ? (Y/N)'
WAIT ' ' TO N6
N6=UPPER(N6)
IF ASC(N6)=0
RETURN
ENDIF
ENDDO
?
?
@ ROW(),35 SAY 'WORKING . . .'
IF COMPDATE1>COMPDATE2
@ 14,0 CLEAR
?
?' INVALID DATE ENTRY'
?
?
WAIT ' Press any key to continue . . .' TO N1
ENDIF
ENDDO
CASE N4='H'
NOTUSED=10
INACTIVE=10
COND1='1'
COND2='2'
COND3='3'
CALDT=1
COMPDATE1=CTOD('12/12/86')
COMPDATE2=CTOD('12/12/84')
DO WHILE COMPDATE1>COMPDATE2
N6=N4
DO WHILE N6#'Y'
@ 14,0 CLEAR
?
?'What beginning date do you choose ?'
?
ACCEPT 'Date format: ##/##/#### DATE: ' TO CHOSDATE
CHOSDATE=LTRIM(TRIM(CHOSDATE))
IF ASC(CHOSDATE)=0
RETURN
ENDIF
COMPDATE1=CTOD(CHOSDATE)
IF LEN(CHOSDATE)<9
IF YEAR(COMPDATE1)+100-YEAR(DATE())<10
MOCALDT=MONTH(COMPDATE1)
DYCALDT=DAY(COMPDATE1)
YRCALDT=INT(YEAR(COMPDATE1)+100+.5)
IF MOCALDT<10
M=1
ELSE
M=2
ENDIF
IF DYCALDT<10
D=1
ELSE
D=2
ENDIF
COMPDATE1=CTOD(STR(MOCALDT,M,0)+'/'+STR(DYCALDT,D,0)+'/'+STR(YRCALDT,4,0))
ENDIF
ENDIF
??'Is '
?? CDOW(COMPDATE1)
??', '
?? CMONTH(COMPDATE1)
?? DAY(COMPDATE1)
??', '
?? YEAR(COMPDATE1)
??' the date which you want ? (Y/N)'
WAIT ' ' TO N6
N6=UPPER(N6)
IF ASC(N6)=0
RETURN
ENDIF
ENDDO
?
?
N6=N4
DO WHILE N6#'Y'
@ 14,0 CLEAR
?
?'What ending date do you choose ?'
?
ACCEPT 'Date format: ##/##/#### DATE: ' TO CHOSDATE
CHOSDATE=LTRIM(TRIM(CHOSDATE))
IF ASC(CHOSDATE)=0
RETURN
ENDIF
COMPDATE2=CTOD(CHOSDATE)
IF LEN(CHOSDATE)<9
IF YEAR(COMPDATE2)+100-YEAR(DATE())<10
MOCALDT=MONTH(COMPDATE2)
DYCALDT=DAY(COMPDATE2)
YRCALDT=INT(YEAR(COMPDATE2)+100+.5)
IF MOCALDT<10
M=1
ELSE
M=2
ENDIF
IF DYCALDT<10
D=1
ELSE
D=2
ENDIF
COMPDATE2=CTOD(STR(MOCALDT,M,0)+'/'+STR(DYCALDT,D,0)+'/'+STR(YRCALDT,4,0))
ENDIF
ENDIF
??'Is '
?? CDOW(COMPDATE2)
??', '
?? CMONTH(COMPDATE2)
?? DAY(COMPDATE2)
??', '
?? YEAR(COMPDATE2)
??' the date which you want ? (Y/N)'
WAIT ' ' TO N6
N6=UPPER(N6)
IF ASC(N6)=0
RETURN
ENDIF
ENDDO
?
?
@ ROW(),35 SAY 'WORKING . . .'
IF COMPDATE1>COMPDATE2
@ 14,0 CLEAR
?
?' INVALID DATE ENTRY'
?
?
WAIT ' Press any key to continue . . .' TO N1
ENDIF
ENDDO
CASE N4='I'
NOTUSED=10
INACTIVE=10
COND1='1'
COND2='2'
COND3='3'
CALINT=1
INTERVAL1=100
INTERVAL2=INTERVAL1
DO WHILE INTERVAL1<0.OR.INTERVAL1>99.OR.INTERVAL2<0.OR.INTERVAL2>99
@ 14,0 CLEAR
?
?' From INTERVAL 1 to INTERVAL 2'
?
ACCEPT 'What is the first monthly interval ? 'TO INTERVAL3
IF LEN(TRIM(INTERVAL3))=0
RETURN
ENDIF
IF VAL(INTERVAL3)<0.OR.VAL(INTERVAL3)>99
LOOP
ENDIF
?
ACCEPT 'What is the second monthly interval ? 'TO INTERVAL4
IF LEN(TRIM(INTERVAL4))=0
RETURN
ENDIF
IF VAL(INTERVAL4)<0.OR.VAL(INTERVAL4)>99
LOOP
ENDIF
DO CASE
CASE VAL(INTERVAL4)>=VAL(INTERVAL3)
INTERVAL1=INT(VAL(INTERVAL3))
INTERVAL2=INT(VAL(INTERVAL4))
OTHERWISE
INTERVAL1=INT(VAL(INTERVAL4))
INTERVAL2=INT(VAL(INTERVAL3))
ENDCASE
ENDDO
@ ROW()+2,35 SAY 'WORKING . . .'
CASE N4='J'
NOTUSED=10
INACTIVE=10
COND1='1'
COND2='2'
COND3='3'
REMK=1
@ 14,0 CLEAR
?
?'What key phrase do you wish to use to search the "'
?? REMARKNM
??'" field ?'
?
ACCEPT ' ' TO REMARK1
IF LEN(TRIM(REMARK1))=0
RETURN
ENDIF
@ ROW()+2,35 SAY 'WORKING . . .'
CASE N4='K'
STORAGE=1
NOTUSED=10
INACTIVE=10
COND1='1'
COND2='2'
COND3='3'
CASE N4='L'
INCAL=1
NOTUSED=10
INACTIVE=10
COND1='1'
COND2='2'
COND3='3'
CASE N4='M'
INREP=1
NOTUSED=10
INACTIVE=10
COND1='1'
COND2='2'
COND3='3'
CASE N4='N'
CAL=1
NOTUSED=10
INACTIVE=10
COND1='1'
COND2='2'
COND3='3'
CASE N4='O'
SERPHRASE=1
NOTUSED=10
INACTIVE=10
COND1='1'
COND2='2'
COND3='3'
@ 14,0 CLEAR
?
?'What is the character phrase you wish to use to search'
?
?'the "'
?? SERIALNUM
??'" field ?'
?
ACCEPT ' ' TO SERPH
SERPH=LTRIM(TRIM(UPPER(SERPH)))
IF LEN(SERPH)=0
RETURN
ENDIF
@ ROW()+2,35 SAY 'WORKING . . .'
CASE N4='P'
TVAPHRASE=1
NOTUSED=10
INACTIVE=10
COND1='1'
COND2='2'
COND3='3'
@ 14,0 CLEAR
?
?'What is the character phrase you wish to use to search'
?
?'the "'
?? TVANUMBER
??'" field ?'
?
ACCEPT ' ' TO TVAPH
TVAPH=LTRIM(TRIM(UPPER(TVAPH)))
IF LEN(TVAPH)=0
RETURN
ENDIF
@ ROW()+2,35 SAY 'WORKING . . .'
CASE N4='Q'
NOTUSED=10
INACTIVE=10
COND1='1'
COND2='2'
COND3='3'
UPDT=1
COMPDATE1=CTOD('12/12/86')
COMPDATE2=CTOD('12/12/84')
DO WHILE COMPDATE1>COMPDATE2
N6=N4
DO WHILE N6#'Y'
@ 14,0 CLEAR
?
?'What beginning date do you choose ?'
?
ACCEPT 'Date format: ##/##/#### DATE: ' TO CHOSDATE
CHOSDATE=LTRIM(TRIM(CHOSDATE))
IF ASC(CHOSDATE)=0
RETURN
ENDIF
COMPDATE1=CTOD(CHOSDATE)
IF LEN(CHOSDATE)<9
IF YEAR(COMPDATE1)+100-YEAR(DATE())<10
MOCALDT=MONTH(COMPDATE1)
DYCALDT=DAY(COMPDATE1)
YRCALDT=INT(YEAR(COMPDATE1)+100+.5)
IF MOCALDT<10
M=1
ELSE
M=2
ENDIF
IF DYCALDT<10
D=1
ELSE
D=2
ENDIF
COMPDATE1=CTOD(STR(MOCALDT,M,0)+'/'+STR(DYCALDT,D,0)+'/'+STR(YRCALDT,4,0))
ENDIF
ENDIF
??'Is '
?? CDOW(COMPDATE1)
??', '
?? CMONTH(COMPDATE1)
?? DAY(COMPDATE1)
??', '
?? YEAR(COMPDATE1)
??' the date which you want ? (Y/N)'
WAIT ' ' TO N6
N6=UPPER(N6)
IF ASC(N6)=0
RETURN
ENDIF
ENDDO
?
?
N6=N4
DO WHILE N6#'Y'
@ 14,0 CLEAR
?
?'What ending date do you choose ?'
?
ACCEPT 'Date format: ##/##/#### DATE: ' TO CHOSDATE
CHOSDATE=LTRIM(TRIM(CHOSDATE))
IF ASC(CHOSDATE)=0
RETURN
ENDIF
COMPDATE2=CTOD(CHOSDATE)
IF LEN(CHOSDATE)<9
IF YEAR(COMPDATE2)+100-YEAR(DATE())<10
MOCALDT=MONTH(COMPDATE2)
DYCALDT=DAY(COMPDATE2)
YRCALDT=INT(YEAR(COMPDATE2)+100+.5)
IF MOCALDT<10
M=1
ELSE
M=2
ENDIF
IF DYCALDT<10
D=1
ELSE
D=2
ENDIF
COMPDATE2=CTOD(STR(MOCALDT,M,0)+'/'+STR(DYCALDT,D,0)+'/'+STR(YRCALDT,4,0))
ENDIF
ENDIF
??'Is '
?? CDOW(COMPDATE2)
??', '
?? CMONTH(COMPDATE2)
?? DAY(COMPDATE2)
??', '
?? YEAR(COMPDATE2)
??' the date which you want ? (Y/N)'
WAIT ' ' TO N6
N6=UPPER(N6)
IF ASC(N6)=0
RETURN
ENDIF
ENDDO
?
?
IF COMPDATE1>COMPDATE2
@ 14,0 CLEAR
?
?' INVALID DATE ENTRY'
?
?
WAIT ' Press any key to continue . . .' TO N1
ENDIF
ENDDO
CASE N4='R'
OTHERCAL=1
NOTUSED=10
INACTIVE=10
COND1='1'
COND2='2'
COND3='3'
ENDCASE
ENDDO
DO CASE
CASE COND1='DUEWITHIN'.AND.COND2='LOCATI'.AND.COND3='INSTTYPE'
NUMCOND=3
CASE COND1='DUEWITHIN'.AND.COND2='LOCATI'
NUMCOND=2
CASE COND1='DUEWITHIN'.AND.COND3='INSTTYPE'
NUMCOND=2
CASE COND2='LOCATI'.AND.COND3='INSTTYPE'
NUMCOND=2
OTHERWISE
NUMCOND=1
ENDCASE
DO OSSFMTMF
N4='Z'
ENDDO
RETURN